qutebrowser MainWindow
qutebrowser 的主窗口,定义了程序的 UI 布局框架。
在该类中,定义了程序的整体布局框架,具体可参见《qutebrowser 布局框架》。
init 初始化
窗口唯一标识:
self.win_id = next(win_id_gen)
获取全局对象注册表:
self.registry = objreg.ObjectRegistry()
将窗口注册到全局窗口注册表:
objreg.window_registry[self.win_id] = self
注册相关上下文:
objreg.register('main-window', self, scope='window',
window=self.win_id)
tab_registry = objreg.ObjectRegistry()
objreg.register('tab-registry', tab_registry, scope='window',
window=self.win_id)
创建根布局:
self._vbox = QVBoxLayout(self)
self._vbox.setContentsMargins(0, 0, 0, 0)
self._vbox.setSpacing(0)
初始化下载管理器:
self._init_downloadmanager()
self._downloadview = downloadview.DownloadView(
model=self._download_model)
创建 TabbedBrowser:
self.tabbed_browser: tabbedbrowser.TabbedBrowser =
tabbedbrowser.TabbedBrowser(
win_id=self.win_id,
private=self.is_private,
parent=self)
objreg.register('tabbed-browser',
self.tabbed_browser,
scope='window',
window=self.win_id)
初始化命令分发器:
self._init_command_dispatcher()
创建状态栏:
self.status = bar.StatusBar(win_id=self.win_id,
private=self.is_private,
parent=self)
添加布局:
self._add_widgets()
self._downloadview.show()
初始化补全:
self._init_completion()
初始化模式:
log.init.debug("Initializing modes...")
modeman.init(win_id=self.win_id, parent=self)
初始化命令解释器:
self._commandrunner = runners.CommandRunner(
self.win_id, partial_match=True, find_similar=True)
本文作者:Maeiee
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!